// 导入axios实例
import request from '@/axios/request'

// 用户相关接口
const userApi = {
  /**
   * 用户注册
   * @param {Object} data - 注册信息
   * @param {string} data.username - 用户名
   * @param {string} data.password - 密码
   * @param {string} data.email - 邮箱
   * @returns {Promise<UserDTO>} 返回用户信息
   */
  register(data) {
    return request({
      url: '/auth/register',
      method: 'post',
      data
    })
  },

  /**
   * 用户登录
   * @param {Object} data - 登录信息
   * @param {string} data.username - 用户名
   * @param {string} data.password - 密码
   * @param {boolean} data.rememberMe - 是否记住我
   * @returns {Promise<UserLoginDTO>} 返回登录信息，包含token和用户信息
   */
  login(data) {
    return request({
      url: '/auth/login',
      method: 'post',
      data
    })
  },

  /**
   * 获取当前用户信息
   * @returns {Promise<User>} 返回用户完整信息
   */
  getUserInfo() {
    return request({
      url: '/auth/users',
      method: 'get'
    })
  },

  /**
   * 更新用户信息
   * @param {Object} params - 更新信息
   * @param {string} [params.email] - 新邮箱（可选）
   * @param {string} [params.password] - 新密码（可选）
   * @param {string} [params.oldPassword] - 原密码（修改密码时必需）
   * @returns {Promise<UserDTO>} 返回更新后的用户信息
   */
  updateUser(params) {
    return request({
      url: '/auth/users',
      method: 'put',
      params
    })
  },

  /**
   * 删除用户（仅管理员可用）
   * @param {number} id - 要删除的用户ID
   * @returns {Promise<Result>} 返回操作结果
   */
  deleteUser(id) {
    return request({
      url: `/auth/users/${id}`,
      method: 'delete'
    })
  }
}

export default userApi